#include<bits/stdc++.h>
using namespace std;
int t;
int m,n,ans;
int a[100005],c[100005];
int q[100005];
int d[20];
int K(int a);
{
    for(int i=0; ;i++)
        if(a>>i==0) return i;
}
int main()
{
    freopen("arena.in","r",stdin);
    freopen("arena.out","w",stdout);
    cin>>t;
    for(int x=1;x<=t;x++,ans=0)
    {
        cin>>n>>m;
        int k=K(n);
        for(int i=0;i<n;i++)
            cin>>a[i];
        for(int i=0;i<n;i++)
            cin>>c[i];
        for(int i=0;i<m;i++)
            cin>>q[i];
            for(int i=0;i<=k;i++)
            {
                for(int j=0;j<n/(1<<i);j++)
                cin>>d[j];
                int j=1;
                while(j*1<<k<=n)
                {
                    if(d[j]==0)
                        if(c[j*(1<<i)]<i)
                    {
                        c[j*(1<<i)]=c[j*(i<<(i-1))];
                        a[j*(1<<i)]=a[j*(i<<(i-1))];
                    }
                    if(d[j]==1)
                        if(c[j*(1<<i)]<i)
                    {
                        c[j*(1<<i)]=c[j*(i<<(i-1))];
                        a[j*(1<<i)]=a[j*(i<<(i-1))];
                    }
                    j++;
                }
            }


    }
}
